/*
    试题名称：小杨的日字矩阵
  1.1 问题描述
    小杨想要构造一个 N*N 的日字矩阵（ N为奇数），具体来说，这个矩阵共有 N行，每行 N个字符，
    其中最左列、最右列都是 | ，而第一行、最后一行、以及中间一行（即第 (N+1)/2 行）的第 个字符都是 - ，
    其余所有字符都是半角小写字母 x 。例如，一个 的日字矩阵如下：
      |---|
      |xxx|
      |---|
      |xxx|
      |---|
    请你帮小杨根据给定的N, 打印出对应的“日字矩阵”。
  1.2 输入描述
    一行一个整数N （5 <= N <= 49 ，保证 N为奇数）。
  1.3 输出描述
    输出对应的“日字矩阵”。
    请严格按格式要求输出，不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出N行，
    每行除了换行符外恰好包含N个字符，这些字符要么是 - ，要么是 | ，要么是 x 。
    你的输出必须和标准答案完全一致才能得分，请在提交前仔细检查。
  1.4 特别提醒
    在常规程序中，输入、输出时提供提示是好习惯。但在本场考试中，由于系统限定，
    请不要在输入、输出中附带任何提示信息。
  1.5 样例输入 1
    5
  1.6 样例输出 1
    |---|
    |xxx|
    |---|
    |xxx|
    |---|
  1.7 样例输入 2
    7
  1.8 样例输出 2
    |-----|
    |xxxxx|
    |xxxxx|
    |-----|
    |xxxxx|
    |xxxxx|
    |-----|
 */
#include <iostream>

using namespace std;

int main() {
  int n;

  cin >> n;
  for (int i = 1;i <= n; i++) {
    if (i == 1) {
      for (int j = 1; j <= n; j++) {
        if (j == 1) {
          cout << "|";
        } else if (j == n) {
          cout << "|";
        } else {
          cout << "-";
        }
      }
    } else if (i == n) {
      for (int j = 1; j <= n; j++) {
        if (j == 1) {
          cout << "|";
        } else if (j == n) {
          cout << "|";
        } else {
          cout << "-";
        }
      }
    } else if (i * 2 == n + 1 ) {
      for (int j = 1; j <= n; j++) {
        if (j == 1) {
          cout << "|";
        } else if (j == n) {
          cout << "|";
        } else {
          cout << "-";
        }
      }
    } else {
      for (int j = 1; j <= n; j++) {
        if (j == 1) {
          cout << "|";
        } else if (j == n) {
          cout << "|";
        } else {
          cout << "x";
        }
      }
    }
    cout << endl;
  }

  return 0;
}
